home *** CD-ROM | disk | FTP | other *** search
/ Aminet 38 / Aminet 38 (2000)(Schatztruhe)[!][Aug 2000].iso / Aminet / misc / math / libalgo.lha / algomath / src / sumdigit.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-30  |  749 b   |  58 lines

  1. /* sum of digits */
  2.  
  3. #include "defs.h"
  4.  
  5. int am_sumdigits(int n)
  6. {
  7.     int Sum = 0;
  8.  
  9.     if(n<0)
  10.         n = -n;
  11.  
  12.     while(n >= _am_asciiconv[0])
  13.     {
  14.         n -= _am_asciiconv[0];
  15.         Sum++;
  16.     }
  17.     while(n >= _am_asciiconv[1])
  18.     {
  19.         n -= _am_asciiconv[1];
  20.         Sum++;
  21.     }
  22.     while(n >= _am_asciiconv[2])
  23.     {
  24.         n -= _am_asciiconv[2];
  25.         Sum++;
  26.     }
  27.     while(n >= _am_asciiconv[3])
  28.     {
  29.         n -= _am_asciiconv[3];
  30.         Sum++;
  31.     }
  32.     while(n >= _am_asciiconv[4])
  33.     {
  34.         n -= _am_asciiconv[4];
  35.         Sum++;
  36.     }
  37.     while(n >= _am_asciiconv[5])
  38.     {
  39.         n -= _am_asciiconv[5];
  40.         Sum++;
  41.     }
  42.     while(n >= _am_asciiconv[6])
  43.     {
  44.         n -= _am_asciiconv[6];
  45.         Sum++;
  46.     }
  47.     while(n >= _am_asciiconv[7])
  48.     {
  49.         n -= _am_asciiconv[7];
  50.         Sum++;
  51.     }
  52.     while(n >= _am_asciiconv[8])
  53.     {
  54.         n -= _am_asciiconv[8];
  55.         Sum++;
  56.     }
  57.     return Sum + n;
  58. }